package com.secxiot.provider.user.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Collections;
import java.util.Date;
import java.util.List;

@ApiModel
@Data //lombok，无须再添加get/set方法
@ToString
public class UserVo implements Serializable {
    private static final long serialVersionUID = -1042714888812668295L;

    @ApiModelProperty(value = "用户id", required = true)
    private Long userId;

    @ApiModelProperty(value = "用户名", required = true)
    private  String username;

    @ApiModelProperty(value = "所属部门列表，排序规则：deptLevel升序", required = true)
    private List<DeptVo> supperDepts= Collections.emptyList();

    @ApiModelProperty(value = "姓名", required = true)
    private String name;

    @ApiModelProperty(value = "直属部门id", required = true)
    private Long deptId;

    @ApiModelProperty(value = "直属部门名称", required = true)
    private String deptName;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "手机号码", required = true)
    private String mobile;

    @ApiModelProperty(value = "状态0禁用1正常", required = true)
    private Integer status;

    @ApiModelProperty(value = "性别1 : 男 ， 0 : 女", required = true)
    private Integer sex;

    @ApiModelProperty(value = "出生日期", required = true)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birth;

    @ApiModelProperty(value = "地址")
    private String liveAddress;

    @ApiModelProperty(value = "头像路径")
    private String headerImg;

    @ApiModelProperty(value = "用户类型，字典:00001", required = true)
    private String type;

    @ApiModelProperty(value = "身份证号码", required = true)
    private String identificationNumber;

    @ApiModelProperty(value = "紧急联系人")
    private UserEmergencyContactVo UserEmergencyContact;

    @ApiModelProperty(value = "医疗机构")
    private Long hospitalId;

    @ApiModelProperty(value = "wx")
    private String wxOpenid;

    @ApiModelProperty(value = "wxuserid")
    private String wxUserid;

    @ApiModelProperty(value = "登陆码")
    private String loginCode;

    @ApiModelProperty(value = "推广码")
    private String promoteCode;

    @ApiModelProperty(value = "邀请码")
    private String invitationCode;

    @ApiModelProperty(value = "推广链接")
    private String promoteUrl;

    @ApiModelProperty(value = "用户总积分")
    private Long integralCount;
}
